import type { IViewConfig } from "@ibiz-template/runtime";

/**
 * 路由壳绘制需要的视图数据
 *
 * @export
 * @interface IRouteViewData
 */
export interface IRouteViewData {
/**
 * 视图Config
 *
 * @type {IViewConfig}
 * @memberof IRouteViewData
 */
viewConfig?: IViewConfig;

  /**
   * 视图上下文
   *
   * @type {IParams}
   * @memberof IRouteViewData
   */
  context?: IParams;

  /**
   * 视图参数
   *
   * @type {IParams}
   * @memberof IRouteViewData
   */
  params?: IParams;

  /**
   * 视图导航参数
   *
   * @type {string}
   * @memberof IRouteViewData
   */
  srfnav?: string;
}

/**
 * 路由路径每一级路径节点
 *
 * @export
 * @interface IRoutePathNode
 */
export interface IRoutePathNode {
  /**
   * 视图名称
   *
   * @type {string}
   * @memberof IRoutePathNode
   */
  viewName: string;

  /**
   * 上下文参数
   *
   * @type {IParams}
   * @memberof IRoutePathNode
   */
  context?: IParams;

  /**
   * 视图参数对象
   *
   * @type {IParams}
   * @memberof IRoutePathNode
   */
  params?: IParams;

  /**
   * 视图导航参数（视图自身解析的额外路由参数）
   *
   * @type {string}
   * @memberof IRoutePathNode
   */
  srfnav?: string;
}

/**
 * 路由路径对象，按照路径定义描述
 *
 * @export
 * @interface IRoutePath
 */
export interface IRoutePath {
  /**
   * 应用上下文
   *
   * @type {IParams}
   * @memberof IRoutePath
   */
  appContext?: IParams;

  /**
   * 路由路径节点集合
   *
   * @type {IRoutePathNode[]}
   * @memberof IRoutePath
   */
  pathNodes: IRoutePathNode[];
}
